草庐IT

c++ - Windows XP 下 CAtlStringMgr::GetInstance 崩溃

全部标签

c - 为 Unix 和 Windows 编写应用程序

我将为交互式UNIX(http://en.wikipedia.org/wiki/INTERACTIVE_UNIX)编写一个程序。但在一年内它将被移植到Windows。我将用ANSIC和/或SH脚本编写它。当它在Windows上运行时,它将作为Windows服务运行。如何让它对我来说尽可能简单?我想在移植时尽可能少地更改,但要使其成为好的代码。不幸的是,InteractiveUnix是一个旧系统,唯一存在的shell是/bin/sh 最佳答案 如果您甚至考虑在SH脚本中执行此操作,那么您应该认真考虑已经可移植的Python。

windows - 在 Windows 下故意使外部进程崩溃

我想合成一个本地代码错误。这样一来,我们就可以看到发生这种情况时,特别是将某些调试输出放在哪里。Pskill(来自Sys-Internals)导致正常退出。Microsoft似乎不再直接提供DotCrash.exe。有什么方法可以从外部导致进程崩溃? 最佳答案 我在使用windbg之前通过以下方式完成了此操作:开始流程使用windbg附加到进程在我的应用程序的一个函数上设置断点运行应用程序直到遇到断点在windbg中,将局部变量设置为会导致访问冲突的内容(例如,将指针设置为0xFFFFFFFF或破坏寄存器值)按F5,应用程序应该会崩

c++ - 从另一个进程中获取内存

在Windows中,假设我使用DLL注入(inject)进入另一个进程。我还对我注入(inject)的进程的内存进行了一些截屏,并知道我想要提取的数据的位置。假设在0xaaaaaaaa处的另一个进程中有包含特定值的数据。我如何从那个过程中获取这个值,以便我可以在我的注入(inject)应用程序中使用它?既然我被注入(inject)到进程中,我可以只使用像memcpy这样的东西吗?memcpy(value,0xaaaaaaaa,10);我假设它可能比这更复杂?编辑:对于下面的回复,我看不出WM_COPYDATA对我有何帮助,因为它用于将数据发送到另一个应用程序,而不是用于从现有应用程序检

Java 崩溃 Windows

我一直在使用J2EE和Derby数据库开发Java应用程序。我的老板负责大部分测试,我负责大部分编码,但他带着一个奇怪的问题来找我。他声称Java应用程序偶尔会“使他的计算机崩溃”。要提及一些细节,首先让我说一下我目前正在远程工作,所以当这些“崩溃”发生时我不能在身边。其次,我使用OSX10.6,他使用WindowsXP(我相信是SP3)。所讨论的Java应用程序不使用任何JNI或任何奇怪的东西,除了嵌入式Derby数据库。最后,他说它卡住了Windows中的所有内容(他的鼠标甚至不动)——它不会像未捕获的异常那样显示在控制台中。那么,有没有可能是我的Java程序让他的电脑崩溃了?我认

c - 为什么这不编译?

#include#includeintmain(){TCHARbuff[1024];GetLogicalDriveStrings(1024,buff);inti;for(i=0;buff[i]!=0;i+=4)printf("%S",buff+i);}当我尝试使用MSVC编译它时,出现以下错误:http://ahb.me/5T-注释掉GetLogicalDriveStrings(1024,buff);会使代码编译得很好 最佳答案 旧版本的C要求在block的开头声明局部变量,在函数调用之前。将inti;移动到函数的顶部,以与buff

c++ - 在 C 窗口中将参数传递给线程的最佳方法是什么?

嗨我有一个使用几个变量的线程。变量在运行时由argv[]确定。我的选择:使变量成为全局变量,以便线程可以使用它们(不需要保护它们,因为线程不会更改它们)。我不太愿意使用它,因为全局变量不是很好创建一个结构来保存变量并将其传递给线程。varibales并没有真正相关,因此它将是一个“强制”结构,除了线程的参数之外没有任何意义。而且,比选项1更复杂还有其他选择吗?哪个更好?谢谢! 最佳答案 itwouldbea"forced"structwithnomeaningotherthanargumentforthethread这听起来像是对结

c++ - 强制窗口位于最顶层的窗口之上(如任务管理器)

这个问题在这里已经有了答案:Howtokeepmytopmostwindowontop?[duplicate](1个回答)关闭9年前。我有一个窗口,我想将其显示在所有其他内容之上。我的代码能够成功地强制它位于几乎每个窗口之上,除了其他最顶层的窗口。这是我使用的代码:SetWindowPos(getSDLWindow(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);每次单击鼠标中键时都会执行此行(我使用鼠标钩来触发它)。一旦我启动我的程序并单击一次中键,从那时起,我的窗口就会保持在所有“常规”窗口之上。但是,所有“

c - WaitForMultipleObjects 堆栈

您知道c中的Windows库中的WaitForMultipleObjects函数正在获取作为对象数组的参数。但是在我的作业中,助手想要将所有线程保存在一个堆栈中而不是一个数组中,我如何将这个函数与堆栈一起使用? 最佳答案 您只能使用数组调用此函数。那不是你能控制的。因此,您需要使用能够将其内容公开为数组的堆栈。或者一个能够像堆栈一样操作的数组。但是,为您的线程使用堆栈容器是完全不合适的,这是完全合理的。为什么你的作业助手要使用堆栈? 关于c-WaitForMultipleObjects堆

c++ - 在windows下用c++列出目录

我想列出当前目录的所有文件,所以我有这段代码:intWLoader::listdir(void){WIN32_FIND_DATAdata;std::wstringpath(L"*");std::wstring*name;HANDLEhFile=FindFirstFile(path.c_str(),&data);if(hFile==INVALID_HANDLE_VALUE)return(-1);while(FindNextFile(hFile,&data)!=0||GetLastError()!=ERROR_NO_MORE_FILES){std::cout由于未知原因,我的程序显示了这个

c++ - 从正在运行的程序中读取值

在DOS.exe程序中(无法访问源代码),DOS屏幕显示:rate=60.(或其他一些值)。如何读取输出“60”以用作我在Python或C/C++中制作的应用程序的输入,除了阅读和打字(我想运行它几十次)。此程序在WindowsXP模式下运行。 最佳答案 使用subprocess模块。有几种不同的方法;最常见的是使用Popen对象。>>>importsubprocess>>>proc=subprocess.Popen(['echo','rate=60'],stdout=subprocess.PIPE,stdin=subprocess